<?php
    // // 定义
    // function 函数名(参数1,参数2, ...) {
    //     // 函数体
    // }
    function pt($msg) {
        echo $msg;
    }
    // pt("test");

    function div($msg) {
        return "<div>$msg</div>";
    }
    // return;
    // echo div("abc");


    function f1($name, $age, $addr) {
        echo "$name,$age,$addr";
    }
    // f1("tom",22,"nanjin");
    // f1("tom",22);// 用法不正确

    // 可以设置参数的默认值
    function f2($name, $age, $addr="无") {
        echo "$name,$age,$addr";
    }
    // f2("tom",22,"nanjin");// tom,22,nanjin
    // f2("tom",22);//tom,22,无
    // 建议参数的默认值设置 从 最后的参数开始

    // 不定长参数 以 ...参数名 表示, 只能放在 函数参数列表的最后，是一个数组
    function f3($a, ...$b){
        echo $a."<br>";
        var_dump($b);
    }
    // f3("a", "b","c");
    // f3("a");

    // 引用参数(引用赋值)
    function f4(&$num){
        echo $num . "<br>";
        $num = 100;// 会改变传入的参数原始值
    }
    $n1 = 20;
    // f4($n1);
    // echo $n1;

    // 1.写一个函数，对参数（数字数组）根据 sort（1表示升序,-1表示降序） 进行排序。
    function my_sort(&$arr, $sort) {
        for ($i=0; $i < count($arr); $i++) { 
            for ($j=0; $j < count($arr); $j++) { 
                if($sort === -1){
                    if($arr[$i] > $arr[$j]){ // 降序
                        $temp = $arr[$i];
                        $arr[$i] = $arr[$j];
                        $arr[$j] = $temp;
                    }
                }else{
                    if($arr[$i] < $arr[$j]){ // 升序
                        $temp = $arr[$i];
                        $arr[$i] = $arr[$j];
                        $arr[$j] = $temp;
                    }
                }
            }
        }
    }
    $arr = [11,3,6,8,5,20];
    my_sort($arr, -1);
    foreach ($arr as $key => $value) {
        echo $value . ",";
    }


?>
